#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
@Time    : 2025/4/17 17:02
@Author  : HZP
@File    : 1.Prompt组件基础用法.py
"""
from datetime import datetime

from langchain_core.messages import AIMessage, HumanMessage, SystemMessage
from langchain_core.prompts import (
    PromptTemplate,
    ChatPromptTemplate,
    HumanMessagePromptTemplate,
    MessagesPlaceholder,
)

prompt = (
    PromptTemplate
    .from_template("你好，{name}，你今年{age}岁。")
    .partial(name="python")
)
message = prompt.invoke({"name": "python", "age": 3})

print(prompt.format(name="张三", age=18))
print(message.to_string())
print(message.to_messages())

print("==================")

print("系统默认数据处理")
chat_prompt = ChatPromptTemplate.from_messages((
    ("system", "你是中电三公司开发的聊天机器人，请根据用户的提问进行回复，当前的时间为:{now}"),
    # 有时候可能还有其他的消息，但是不确定
    MessagesPlaceholder("chat_history"),
    HumanMessagePromptTemplate.from_template("构造一个{subject}消息类主题！"),
)).partial(now=datetime.now())
chat_message = chat_prompt.invoke({
    "subject": "程序员",
    "chat_history": [
        ("human", "我是提问者"),
        SystemMessage("请回答用户问题"),
        AIMessage("你好，我是DEEPSEEK，有什么可以帮到您"),
        HumanMessage("你好，我是提问者"),
    ],
})
print(chat_message.to_messages())
print(chat_message.to_string())
